package cn.genmer.test.security.leetcode.easy;

/**
 * 9. 判断回文
 */
public class IsPalindrome {
    public static void main(String[] args) {
        System.out.println(isPalindrome2(14441));
    }

    /**
     * 自己想的,字符串对折判断
     * @param x
     * @return
     */
    public static boolean isPalindrome(int x) {
        String xStr = String.valueOf(x);
        int length = xStr.length();
        // 个位数是回文
        if (length <=1){
            return true;
        }
        char[] chars = xStr.toCharArray();
        int mid = length/2;
        for (int i=0; i<mid; i++){
            if (chars[i] != chars[length-1-i]){
                return false;
            }
        }
        return true;
    }

    /**
     * 力扣的
     * @param x
     * @return
     */
    public static boolean isPalindrome2(int x) {
        //思考：这里大家可以思考一下，为什么末尾为 0 就可以直接返回 false
        if (x < 0 || (x % 10 == 0 && x != 0)) return false;
        int revertedNumber = 0;
        while (x > revertedNumber) {
            revertedNumber = revertedNumber * 10 + x % 10;
            x /= 10;
        }
        return x == revertedNumber || x == revertedNumber / 10;
    }

}
